const express = require('express');
const expressJoi = require('@escook/express-joi');

// 使用express框架的路由
const router = express.Router();

// 导入路由处理函数
const userInfoHandler = require('../router_handler/userInfo.js')

// 导入验证规则
const {
  password_limit,
  name_limit,
  email_limit,
  forgetPassword_limit
} = require('../limit/userInfo.js');

// 上传头像接口
router.post('/uploadAvatar', userInfoHandler.uploadAvatar)
// 绑定账号
router.post('/bindAccount', userInfoHandler.bindAccount)
// 密码修改
router.post('/updatePassword', expressJoi(password_limit), userInfoHandler.updatePassword)
// 获取用户信心
router.get('/getUserInfo', userInfoHandler.getUserInfo)
// 修改姓名
router.post('/updateName', expressJoi(name_limit), userInfoHandler.updateName)
// 修改性别
router.post('/updateSex', userInfoHandler.updateSex)
// 修改邮箱
router.post('/updateEmail', expressJoi(email_limit), userInfoHandler.updateEmail)
// 验证账号和邮箱
router.post('/verifyAccountAndEmail', userInfoHandler.verifyAccountAndEmail)
// 忘记密码页面修改密码
router.post('/changePassword', expressJoi(forgetPassword_limit), userInfoHandler.changePassword)

// 用户管理
// 添加管理员
router.post('/createAdmin', userInfoHandler.createAdmin)
// 获取管理员列表
router.get('/getAdminList', userInfoHandler.getAdminList)
// 编辑管理员信息
router.post('/editAdmin', userInfoHandler.editAdmin)
// 对管理员进行取消赋权操作
router.post('/cancelAdmin', userInfoHandler.cancelAdmin)
// 对普通用户进行赋权操作
router.post('/toBeAdmin', userInfoHandler.toBeAdmin)
// 通过账号获取用户
router.get('/searchUsersByAccount', userInfoHandler.searchUsersByAccount)
// 通过部门获取用户
router.get('/getAdminListByDepartment', userInfoHandler.getAdminListByDepartment)
// 冻结用户
router.post('/freezeUser', userInfoHandler.freezeUser)
// 获取冻结用户列表
router.get('/getFreezeUsers', userInfoHandler.getFreezeUsers)
// 解冻用户
router.post('/thawUser', userInfoHandler.thawUser)
// 注销/删除用户
router.post('/deleteUser', userInfoHandler.deleteUser)
// 分页查询管理员的数据和总数
router.get('/getAdminPageList', userInfoHandler.getAdminPageList)



module.exports = router;